Adaptive and user location-based power saving system

ABSTRACT

An adaptive, user-centric system and network for controlling power consumption by an appliance is described. The appliance may be any type of powered apparatus, such as A/C units, heaters, computers, lights, kitchen appliances, home media centers, and so on. The power to these appliances is based on an estimated arrival time of the user to the destination where the appliance is located. It may also be based on previous performance data for the particular appliance, that is, given the current conditions (e.g., various environment temperature readings), how long has it taken in the past for the appliance to reach a certain level of operation. The location of the user is determined by a device that has some location-based services and is able to transmit this location/position data in a message to a power-control server. The server applies rules contained in the message to derive an estimated arrival time for the user which is used to power appliances at the user&#39;s destination.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to computer networks and power savingsystems. More specifically, it relates to remote power control ofdevices and appliances using location-based data.

2. Description of the Related Art

With the cost of power increasing every year, consumers are becomingmore sophisticated with regard to controlling power to devices andappliances in their home, workplace, and other environments. Forexample, consumers often use timers and sensors for controlling when tosupply power to appliances. However, present power-saving systems areinefficient at managing power to device and appliances. Motion-basedsensors often rely on a pre-defined range or direct contact with thesensor. Time-based systems are not sufficiently flexible; they simplyturn devices on or off based on time, which may vary by day.Sensor-based power solutions, such as thermal sensors, often rely ondirect contact with physical bodies (i.e., with a human being) orambient objects, which may be unsuitable in situations where a userwould like an appliance to be powered on at a certain time that iscoordinated with the user's arrival time.

Moreover, consumer power preferences or power profiles are not portable.They are often tied to a particular location. Users who often like tohave their power-consumption preferences, that is, preferences as towhen they would like their devices powered on or off, travel with themor be portable. Furthermore, existing sensors control power to devicesbased on times and days set in a schedule that may change based onreal-life events where a user might use a device, not when the useractually needs the device. Time-based systems simply follow a setschedule and control power to devices regardless of whether the consumeris there to use the device. As noted, other sensor-based power controlsystems rely solely on user presence or an ambient condition, and thusare not suitable for devices or appliances that are preferably poweredon a certain time before the consumer is ready to use them, whether thattime be one hour (such as with air conditioning units, heaters, etc.) ora few minutes (file servers, media center PCs, and the like).

SUMMARY OF THE INVENTION

A user-centric system and network for controlling power consumption byan appliance is described. The appliance may be any type of poweredapparatus, such as A/C units, heaters, computers, lights, kitchenappliances, home media centers, and so on. The power to these appliancesmay be based on an estimated arrival time of the user to the destinationwhere the appliance is located. It may also be based on previousperformance data for the particular appliance; that is, given thecurrent conditions (e.g., various environment temperature readings), thelength of time it has taken in the past for the appliance to reach acertain level of operation may be considered. The current conditions maybe determined from sensor data from a network (or one) sensor, such asthermal, noise, motion, or light-sensitive sensors. The location of theuser is determined by a device that has some location-based services andis able to transmit this location/position data in a message to apower-control server. The server retrieves a power-saving profile basedon data in the message and applies rules contained in the message toderive an estimated arrival time for the user which is used to determinewhen to power one or more appliances at the user's destination. In thismanner, the appliance is turned on at a time that allows the user fullbenefit from operation of the appliance upon arrival and without wastingany power, that is, without turning the appliance on too soon.

One embodiment is a method of controlling the operation of apower-consuming appliance. A location message from a power-controlenabled device is received. This message may contain information on thelocation and position of a user carrying a device, wherein the device iscapable of providing this user-centric location information, and may bereferred to as a power-control enabled device. The message may alsocontain information on the power-control enabled device itself. Oncereceived, a power-saving profile using device data in the locationmessage is retrieved. Location data contained in the message is used tocontrol operation of the power-consuming appliance such that the timingof the appliance operation (e.g., turning it on or off, or adjusting itslevel of output) is determined based on the user location indicated inthe location message and may be based on other factors as well, such asprevious performance or historical data. Controlling operation of theappliance may involve executing power-related rules. In anotherembodiment, sensor data is received from one or more sensors.

Another embodiment is a system or apparatus for controlling operation ofan appliance. The system includes a processor, a network interface forreceiving a location, and a power-supply component interface fortransmitting instructions to one or more power-supply components (whichare plugged into power outlets and supply power to appliances). Alsoincluded is a power-control module having a location message parsingcomponent for parsing the location message. A memory stores at least onepower operation rule associated with the appliance and at least onepower-saving profile. The power-related profile may contain appliancedata, sensor component data, and rules data. A system as recited inclaim B1 wherein the power control module calculates a wait time periodrelating to a time the power control module sends an operation controlinstruction to the appliance, wherein the calculation is based on datain the location message. In another embodiment, the system memory alsostores previous power-related performance data relating to the appliancereceiving power form the one or more power-supply components. In anotherembodiment, the wait time period calculation may be based on theprevious performance data and on sensor data.

Another embodiment is a network for controlling operation of apower-consuming appliance. The network includes at least one device,such as a mobile phone, having a power-related module or a dedicatedpower-related device, a power controller component having a power-savingprofile and a power supply logic component. Also included is a powersupply component for regulating operation of the power-consumingappliance.

BRIEF DESCRIPTION OF THE DRAWINGS

References are made to the accompanying drawings, which form a part ofthe description and in which are shown, by way of illustration,particular embodiments:

FIG. 1 is an overview network diagram showing relevant components in apower control system in accordance with one embodiment of the presentinvention;

FIG. 2 is a flow diagram of a process of controlling power to appliancesbased on power profiles and location data of a consumer in accordancewith one embodiment;

FIG. 3 is a flow diagram showing in greater detail step 224 where thepower controller performs power-related actions with respect to aparticular appliance in accordance with one embodiment;

FIG. 4 is a logical block diagram of power controller in accordance withone embodiment;

FIG. 5 is an overview network diagram showing an alternative embodiment;and

FIGS. 6A and 6B are illustrations of a computing system suitable forimplementing embodiments of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Methods and systems for controlling power supplied to appliances basedon user location and using user power-saving profiles are described inthe various figures. Location-based sensors are preferred. Such sensorsprovide power to devices based on the location of the consumer, forexample, how far the consumer is from her home or office determines whendevices will be powered on. Such power saving control systems need to beadaptive to a consumer's actual activities and actions.

FIG. 1 is an overview network diagram showing components in a powercontrol system in accordance with one embodiment of the presentinvention. It shows one scenario in which the present invention may beused. In a power control-enabled device 102, such as a cell phone,contains a power control software or firmware module 104. The user ofdevice 102 may download or install module 104 from the Internet 106, viaa memory device, such as a USB key or compatible memory chip. In otherembodiments, the user may have power control module 104 installed ondevice 102 by the service provider or another party. In one case, theuser may download software 104 from Internet 106 wirelessly or via awired connection. Another device 108 may be a dedicated power controlmobile device. In this embodiment, the primary function of device 108 isto perform the functions needed for the present invention. Such a devicemay be installed in a car so that the system, described below, does nothave to depend on a user's cell phone or other mobile device. It mayalso be carried by the user in a purse, briefcase, backpack, or on theperson (e.g., in a pocket).

Both devices 102 and 108 are Internet-enabled devices and cancommunicate data to Internet 106. With dedicated device 108, the userdoes not have to download or install software or firmware 104 as wouldbe necessary with device 102. In yet another embodiment, a dedicateddevice, similar to device 108, but smaller and having attachment orcoupling means, may be attachable to a cell phone, computer, laptop,etc., thereby making the device power control-enabled (it may also beeasily detachable). In either case, device 102 or 108 may usetriangulation, GPS services, or other less expensive or complexlocation-based services (LBSs) to provide location data. As describedbelow, the purpose of the LBS is to provide the location of the user andrelay the information.

Power control software/firmware component 104 in device 102 anddedicated device 108 tracks the location of the person carrying thedevice. Component 104 and device 108 may also communicate the locationdata, which may include direction data and other information, to anetwork component, referred to as an adaptive power controllercomponent, described below. This data informs the network component ofthe location of the user carrying the power control device (devices 102or 108). Power control software or firmware component 104 or powercontrol dedicated device 108 has the IP addresses of the adaptive powercontroller component that receives the location data.

The other portion of overview network 100 may be characterized as the“receiving end” and is essentially another network 110. One component innetwork 110 is a gateway component 112 or firewall. Network 110 may nothave such a component, but a gateway or firewall may be desirable tomaintain security within network 110. For example, many home networksmay have a firewall protecting it from viruses and malware, whereaslarger entities may have a gateway. Various embodiments of the presentinvention may operate without gateway device 112. Connected to gateway112 is adaptive power controller component 114, described in FIG. 4. Inone embodiment, power controller 114 may be a server program within anexisting server computer in network 110 or may be a stand-alone device.It may also be embedded in a router device, a TV (e.g., in a set-topbox) or in any Internet-connected device. For example, if network 110 isa home network, power controller 114 may be embedded in the home networkserver. In one embodiment, power controller 114 is purchased or licensedfrom a provider offering the adaptive power controller (power saving)system of the present invention. Another embodiment is described in FIG.5 where an adaptive power control tracking service Web server isutilized.

Power controller 114 is connected to one or more appliances 116, 118,120, and 122 via a receiver adaptor or power adaptor. The connection tothe receiver adaptor may be wired or wireless. The term appliance isused to describe any device, apparatus, component, or appliance whichneeds electrical power to operate and for which the consumer wants tocontrol power supply in order to conserve power, lengthen the life ofthe appliance or to have operational in time for the user. The range ofappliances varies widely and may depend on the context. For example, ina home environment, an appliance may range from a coffee brewer to acentral air conditioning unit (such as appliance 122). Other examplesinclude home network and media server (appliance 120), kitchenappliances, lights, heating systems, computers, and so on. In an officeenvironment, examples may include lights, air conditioning, servercomputers, and the like.

As noted, power controller 114 is connected to appliances via poweradaptors. It has a wired or wireless connection with a power adaptor,such as the X-10 power adaptors 124 and 126 or adaptive applianceadaptors 128 and 130 will receive and execute commands from powercontroller 114. The wired connections may be via Ethernet or serial andwireless connections may be via Bluetooth, RF, or Wi-fi. These units areconnected to the appliances and supply power to them. They may below-cost power adaptors that connect an appliance to a power source andswitch power on or off based commands from power controller 114. Asshown, power adaptors 124-130 receive A/C power (i.e., they are pluggedinto normal power outlets). As described below, instructions to powerappliances 116 to 122 on or off are received by the power adaptors frompower controller 114. Appliance adaptors 128 and 130 may be moresophisticated power adaptor units (compared to the X-10 units) thatallow for more “fine tuning” with respect to controlling power andsettings of the appliances. They may communicate via Bluetooth,Ethernet, or WiFi with power controller 114. For example, they may allowfor greater specificity when controlling the temperature of an A/C unit,heater, or a kitchen appliance (e.g., oven). The X-10 power adaptor is acommercially available unit that can turn an appliance on or offwirelessly using RF frequency.

Adaptive power controller 114 may receive input from one or moresensors. If there is more than one sensor, the one or more sensors maybe referred to as a sensor network 132. The sensors may be conventionalsensors, including sensors for detecting motion, temperature changes,sound, vibration, and light. For each of these types of sensors, theremay be numerous models and makes that vary, for example, in sensitivity,range, power consumption, and the like. There may be other types ofsensors not listed that may also be part of sensor network 132. Thevarious embodiments described herein do not focus on the specific typesof sensors, but rather on that the data coming from these sensors whichis input to adaptive power controller 114 which may use the data todetermine how to control appliances 116 to 122. As is known in the art,sensors in network 132 may be spread out in the relevant environment(e.g., home, office building, public facility, business place or store).Temperature sensors may be placed outside and inside a home or officebuilding, as with, motion sensors and sound sensors. In short, sensorsmay be placed or installed wherever the consumer believes they would bemost effective (and according to the instructions and guidelines of thesensor manufacturer). It is worth noting that adaptive power controller114 may receive input data from sensor network 132 and from gateway 112via Internet 106. In other embodiments, there may not be any sensor dataor sensor network 132. The operations of the adaptive power controller114 may be based only on location data, as described below. Someappliances 116-122 may not be dependent on or have rules that involvesensor data, but are only dependent on user-location data, estimatedarrival time, and other data. Examples of such devices may be computers,home theaters, kitchen oven, and the like.

FIG. 2 is a flow diagram of a process of controlling power to appliancesbased on power-saving profiles and location data of a consumer inaccordance with one embodiment. Before step 202, a mobile device, suchas a smart phone or mobile computing device, is pre-configured withadaptive power control software component 104. This may be downloaded orinstalled via other means as noted above. This does not have to be donefor dedicated power control devices, such as device 108. Both types ofdevices have the IP address of the relevant adaptive power controller114, as described below.

At step 202 the mobile device transmits a message to power controller114 via Internet 106. The location message contains position or locationdata of the device and may also include directional and other data. Thedevice may use any suitable LBS to determine its location, such astriangulation, GPS, and others. The location data may include longitudeand latitude data. In one embodiment, the message is sent using the RESTprotocol and API via HTTP or HTTPS. As is known in the field, REST is acommonly used protocol and API for transmitting messages requesting Webservices on the Internet, such as requesting the use of a Web searchengine (the search request is in a REST formatted message). The messagetransmitted by the device contains accurate location, position, and/ordirectional data of the device (and, therefore, of the consumer). Thetransmission frequency of this message may depend on the size and powercapabilities of the device. If the device is small and has limitedbattery power (like many cell phones), the message may not be sent veryfrequently in order to conserve battery power. The frequency andscheduling of when such location messages are sent may be one of thefeatures used to pre-configure the device prior to step 202. A dedicatedadaptive power control-enabled device, such as device 108, may drawpower from a car battery, for example, and may send messages frequently.In another embodiment, described below, some of the calculations todetermine an estimated arrival time that may normally be performed onadaptive power controller 114 may instead be done on the device itself,thereby easing the processing load of controller 114.

At step 204 power controller 114, having its own IP address receives alocation message. The message may pass through gateway component 112 orfirewall before reaching power controller. At step 206 the locationmessage is parsed by the power controller. In addition to containingposition data (the primary data component in the message), in oneembodiment, it also contains various other data types stored in variousfields. These may include device ID which is an identifier of the powercontrol device and an appliance identifier, discussed below. Before step206 or during this step, the power controller may use the device ID datato verify that the message is being sent from a legitimate or authorizeddevice. For example, the device should belong, for example, to aconsumer, a member of a family (in a home environment), or anemployee-consumer (if in an office environment). The device ID maycorrespond to a particular consumer (a parent or a child in a family) orgroup. Other data fields may include arrival time and duration. Anexample of a location message using the REST API is:http://www.johnsmith.savetheearth.com/trackingData?devid=abcdef0123&appid=YD-j2WSRol_JXzV18GTnBleyQ--&latitude=38.96010&longitude=-123.71500&arrivaltime=1423&duration=0:23

At step 208 the power controller retrieves one or more power savingprofiles based on the device ID. A sample power-saving profile, whichcontain condition-based rules used to determine when to supply power toan appliance, is provided below. Power controller, described in FIG. 4,may have a repository of power profiles that are indexed or searchablebased on device ID or user (consumer) ID. Once the profile or profilesare retrieved at step 208, at step 210 the power controller determineswhether there is more than one profile. A specific device ID (such as,for example, the dedicated power control device in the family car) mayhave three or four power profiles associated with it, whereas the deviceID from a cell phone for a teenager in the family may have only oneprofile associated with it. If there is only one profile retrieved,control goes to step 214. If there is more than one profile, controlgoes to step 212 where the power controller determines the priority ofthe profiles and places them in a specific order. In one embodiment, aprofile may have either a global scope or an individual scope. In otherembodiments, there may be more scopes. The priorities of the profilesmay depend on the priority of the user (e.g., a parent may have a higherpriority than a child). Once the priorities and the order of theprofiles are determined at step 212, control goes to step 214. Theprocesses beginning at step 214 are done for each profile if there ismore than one. In one embodiment, a user may have multiple profiles.

At step 214 the profile is read and the relevant appliances areidentified. A sample profile is provided below:

<profile> <name> name of profile </name> <device>   <name> name ofdevice or applicance </name>   <id> device id </id>   <sensor>    <name> temperature sensor 1 - outdoor </sensor>     <id>TEMPER01</id>     <protocol> X10 </protocol>     <command_info>      <file> sensor_cmd_01.txt </file>     </commands_info>   </sensor>  <sensor>     <name> temp sensor 2 - indoor </sensor>     <id>TEMPER02</id>     <protocol> X10 </protocol>     <command_info>      <file> sensor_cmd_01.txt </file>     </commands_info>   </sensor>  <user_location derivation>     <name> Smith's location </sensor>    <id> USERLOC01</id>     <protocol> REST::APCS </protocol>    <command_info>       <file> user_location_cmd_01.txt </file>    </commands_info>   </user_location derivation>   <condition>    <name> cond_1 </name>     <value> USERLOC01 @home</ value >   </condition >   < condition >     <name> cond_2 </name>     < value >TEMPER02::68-70 F </ value >   </ condition >   <rule>     <on> cond_1&& NOT cond_2 </on>     <off> NOT cond_1 </off>   </rule> </device></profile>

Each power-saving profile contains information on how to control atleast one appliance. It may contain instructions on how to controlnumerous appliances. At step 214, each appliance (e.g., computer, A/Cunit, kitchen appliance, etc.) is identified and listed. At step 216,for each appliance, relevant rules are examined. Each appliance may haveat least one rule which dictates when the appliance should be turned onor off using at least one metric (e.g., temperature, amount of daylight,and the like). An example of a rule is “if indoor temperature is lessthan 69 degrees, increase heat” or “if outdoor daylight is less than 86lumens, turn on outdoor lights,” or “if there is motion in a hallway andit is after 7 pm, turn on indoor lights.” Each rule may have at leastone or more conditions associated with it. At step 218 the one or moreconditions are examined for each rule. Thus, using the above examples,the condition for the first rule may be indoor temperature, for thesecond rule, outdoor daylight, and for the third, motion in hallway andtime of day.

At step 220 power controller 114 receives data from the sensor networkor from one sensor. The sensor data it receives is relevant to thecondition. For example, for the first rule and the one conditionassociated with the rule, the sensor data is indoor temperature datafrom indoor temperature sensors, (i.e., thermometers). If the rule beingexamined is the second rule (“if outdoor daylight is less than 86lumens, turn on outdoor lights”), the sensor data received may be lightdata from outdoor light sensors. In other embodiments, power controller114 may not receive nay sensor data.

At step 222, power controller 114 retrieves data that may be referred toas “previous performance” data or historical data, stored in its ownrepositories. This data corresponds to the specific appliance and howthat appliance has responded to power commands in the past. This datamay be more applicable to appliances where there is some type ofincremental adjustment necessary, rather than to an appliance that has astrict binary operation (on/off) and has an effect that occursimmediately upon powering on (e.g., turning on a light). One example ofprevious performance data may relate to air conditioning (cooling orheating of an environment) and may provide indications of how theappliance, e.g., central A/C unit, performs under various conditions.For example, the historical data may indicate that in the past, it took10 minutes for the A/C unit to cool the environment (e.g., a livingroom) from 75 degrees to 70 degrees when the unit was turned on tomaximum “COOL” level. This data may also include the other temperatureat the time. Similarly, the previous performance data may indicate thata heating unit took 13 minutes to heat an office floor from 64 degreesto 70 degrees. In another example, relating to an office servercomputer, previous performance data may indicate that it took 2.5minutes to boot up. Other examples may include simple kitchenappliances, such as the time it takes to pre-heat an oven or start akitchen appliance. This previous performance data may be taken intoconsideration by the power controller in determining at what time tosupply or adjust power to an appliance with respect to the user'sestimated arrival time.

At step 224 the power controller performs a power-related action basedon the data and rules described above and on the data received in thelocation messages. The location data provides an estimated amount oftime before a user reaches a destination, i.e., an estimated arrivaltime. It also provides data on whether the user has made a detour, hasstopped somewhere, is in traffic and may be delayed, or other factorsthat may affect the amount of time before the user reaches thedestination (i.e., location of the appliance). The action by powercontroller 114 taken may be to transmit a signal to the power unit (X-10or appliance adaptor) to either turn on or off an appliance or adjustthe controls of an appliance (e.g., increase or decrease the brightnessof a light, turn up or down a heater or increase cooling from an A/Cunit, and so on). That is, “fine tune” the appliance, rather than simplyturning it on or off. As noted, the appliance adaptor unit (e.g., units128 and 130 in FIG. 1) is well-suited for doing this type of adjustmentof appliances, whereas the X-10 module capabilities may be limited toturning appliances on or off (such as computers, lights, and so on).

At step 226, after the appliance has either been turned on or off, oradjusted in some manner “performance,” data relating to the amount oftime it took the appliance to reach the intended goal gives the specificpower-related action is recorded and stored, assuming such data isavailable in the particular context. This previous performance data isspecific to a particular appliance and, thus may be dependent on themodel, year, wear and tear, technical specifications, etc. of theappliance. The variety of contexts where such data would be available(that is, would make sense to collect and store) are described above.For example, previous performance data may not be collected for turninglights on or off. However, data may be collected and stored for mosttemperature-related power actions (cooling or heating an environment).

At step 228 the power controller checks to see if there are more rulesassociated with the selected appliance. If there are more rules, controlreturns to step 218 (examine conditions for next rule), where theprocess repeats from step 218 to step 228. If there are no more rulesfor the appliance, control goes to step 230 where the power controllerchecks to see if there are more appliances in the profile. Recall thatin step 214, all the relevant appliances for each profile wereidentified. If there are more appliances, control goes to step 216 wherethe one or more rules for the appliance are examined and the processrepeats for the appliance (i.e., rules for the appliance are examinedand the process is repeated for each rule, and so on). If there are nomore appliances, the process for one profile is complete. At step 208,the message received from the device is parsed and the number ofprofiles associated with the message is identified and retrieved. Ifthere is only one profile, the process is complete after step 230. Ifthere are more profiles, the process returns to step 214 where therelevant appliances for the selected profile are identified. The processmay then continue until all profiles are examined and power-relatedactions have been taken by the power controller at step 224. It is worthnoting that in some cases no power-related actions may be taken based onthe outcome of the rules, sensor data, and/or location data (relevanttime frames).

FIG. 3 is a flow diagram showing in greater detail step 224 where thepower controller performs power-related actions with respect to aparticular appliance in accordance with one embodiment. Some of thesteps of FIG. 3 are the same or similar to steps described in FIG. 2;however, it is useful to elaborate on these steps in more detail anddescribe related steps not mentioned in FIG. 2. At step 302 the powercontroller examines conditions that comprise the rule being examined(see step 216 of FIG. 2). As noted above, the conditions may relate totemperature, time, amount of light, motion, sound, vibrations, and soon. At step 304 the sensor data received by the power controller fromthe sensor network is examined. However, the power controller may onlywant to receive and examine the relevant sensor data. For example, sounddata is not needed if the appliance is a computer or an A/C unit. Whichsensor data is relevant to the appliance is evident from the rule andconditions contained in the profile being examined.

At step 306 the power controller examines the previous performance orhistorical data relating to the specific appliance to get a betterestimate of when the controller should start power to the appliance andat what level (if applicable). The previous performance data may providesome guidance to the power controller as to how the appliance reacts orbehaves under specific circumstances, such as the amount of time ittakes the appliance to begin operating effectively if the outsidetemperature is below freezing or how long does the appliance take toturn on and be operational if other related appliances are turned off,and so on. This added intelligence may allow the power controller tomake a better estimate of when to turn on (or turn off) the appliance.As noted, for certain appliances, there may be no previous performancedata stored or needed, such as for simple or less complex appliances.

At step 308 the power controller examines the estimated arrival time ofthe user to reach the destination, such as a home, office vacation home,and the like. At this stage the power controller takes intoconsideration the time aspect of the calculation. As noted above, thepower controller enables efficient use of power in turning appliances onor off so that little energy is wasted and so that the appliance isoperational or has performed its operation at the time needed by theuser. An important part of this calculation is determining the amount oftime before the user reaches the destination. The power control-enabledor dedicated device (devices 102 and 108) provides position/locationdata to the power controller. It may also provide directional data andvehicle speed (if travelling in a car, train, and so on). The powercontroller may know that if the user is at location B which is 10 milesfrom the user's destination A, it will take the user seven minutes toreach destination A assuming there is no traffic or detours. Thecontroller uses this arrival time estimate to determine when to turn onor adjust power to the appliance. If the next message indicates that theuser has made a stop, the new time estimate is used (this estimate maybe something like “arrival time unknown” or “undetermined”). As noted,the more frequently the device transmits messages to the powercontroller, the more accurately the controller can determine an arrivaltime. At step 310 the power controller executes the specific rule forthe appliance taking into consideration all the data from the previoussteps. In the described embodiment, the time when action is taken on anappliance is based in part on the arrival time, along with otherfactors. The action may be to do nothing and wait to receive the nextmessage.

FIG. 4 is a logical block diagram of an adaptive power controller inaccordance with one embodiment. Power controller 402 contains variouscomponents and data relevant to the various embodiments of the presentinvention. They include a profile repository 404 or, more generally, arepository of data sets or files containing user power-saving profiledata as described above, a previous performance (historical) datarepository 406, a network interface 408, and an adaptive powercontroller logic component 410. The profiles and previous performancedata are stored in a memory component in the power controller, such as aRAM or non-volatile memory (not shown). Also stored in the memory arepower-supply rules 412. Power controller 402 may also contain a profilepriority module 414 (see step 212). Other hardware components include apower adaptor interface 416 and a processor 418. More generic diagramsof a computing device are provided in FIGS. 6A and 6B. These figuresshow more detailed components that may be contained in power controller402. Power controller logic 410 may be in the form of software orfirmware and may execute the processes described above in FIGS. 2 and 3,in which power controller 402 determines when to supply power to (orcut/decrease power to) appliances and when to do so based on the variousfactors.

FIG. 5 is an overview network diagram similar to FIG. 1 showing analternative embodiment. A power control-enabled device 502 having apower control module 503 and a mobile power control dedicated device 504(same as devices 102 and 108) transmit messages using REST API overInternet 508 to an adaptive power-controller tracking service server510. Gateways, firewalls, and power controllers, such as gateway 512,may then connect with server 510 over Internet 508 (for purposes ofillustration, FIG. 5 shows the connection between gateway 512 and server510 as a direct connection). The network segment “behind” gatewaycomponent 512 is the same as the network shown in FIG. 1. That is,adaptive power controller 114 is connected to various X-10 adaptors andappliance adaptors which, in turn, are connected directly to varioustypes of appliances. The input to power controller 114 may be the sameas in FIG. 1, namely, sensor data from a sensor network 132. In thisembodiment, an example of a position data message sent from device 502or 504 using a REST API may be:

http://www.trackingservice.org/trackingData?devid=abcdef0123&appid=YD-j2WSRoI_JXzV18GTnBIeyQ--&latitude=38.96010&longitude=−123.71500&arrivaltime=1423&duration=0:23

The message may be sent to the tracking service Web server and stored.Thus, in this embodiment, devices 502 and 504 need to know the IPaddress of tracking server 510. It may also know the IP address of thepower controller 114 itself, as in the embodiment above, in the eventthere is a malfunction with tracking server 510. Power controller 114 atthe home, office or other location periodically checks tracking server510 for any updated position messages from devices it has registered.Power controller 114 has the IP address of tracking server 510 and mayuse a REST-based message such:http://www.apcstrackingservice.org/trackingData?devid=abcdef0123&devid=abcdef0124.

In other embodiments, other protocols may be used to format therequests. The frequency of the position data update requests may dependon the how the user configures power controller 114. Requests to server510 may be sent as often as desired (the more often updates from server510 are obtained, the more accurate the time calculations may be). Whentracking server 510 receives the request, it returns (i.e., forwards)the position data message it receives from devices 502, 504 to powercontroller 114. Once power controller 114 receives the position message,the process is the same as the processes described above in FIGS. 2 and3.

In one embodiment, a user is able to install her power-saving profilesonto other power controllers at other locations. A user may be able toremove or copy power-saving (preference) profiles onto a storage medium,such as a USB key or CD-ROM, or have them stored on a server on theInternet and use them on other power controllers. The user's powerprofiles are portable and can travel with the user. They are also easilyconfigurable and may be changed to meet the needs of the user as needschange. Additional profiles may also be added or deleted as needed. Inthis manner, the user can conserve power and general “wear and tear” onthe appliances wherever she goes. In another embodiment, the user'spower profiles may be exported from the user's primary power controllerto another power controller upon request by the user. The other powercontroller, for example, may be at a vacation home, a hotel, a new userresidence, another office, and so on. For example, if the user reservesa hotel room online and that hotel has a power controller as describedabove, the user may request that her power profile be sent to thehotel's power controller so it may be used to control the environment ofthe room before the user arrives and during her stay. In this manner,the appliances used by the user that are present in the hotel will bepowered on and off as they would at the user's home or office, such ascontrolling air temperature, water temperature, and so on, without theuser having to manually carry the profile (e.g., on a USB key) to thehotel and installing it once she arrives there.

FIGS. 6A and 6B illustrate a computing system 600 suitable forimplementing embodiments of the present invention. For example,computing system 600 may be power controller 114 or power controltracking Web server 510. FIG. 6A shows one possible physicalimplementation of the computing system (shown as a PC for illustrationonly). Of course, the internal components of the computing system mayhave many physical forms including an integrated circuit, a printedcircuit board, a small handheld device (such as a mobile telephone,handset or PDA), a personal computer or a server computer, a mobilecomputing device, an Internet appliance, and the like. In oneembodiment, computing system 600 includes a monitor 602, a display 604,a housing 606, a disk drive 608, a keyboard 610 and a mouse 612. Disk614 is a computer-readable medium used to transfer data to and fromcomputer system 600. Other computer-readable media may include USBmemory devices and various types of memory chips, sticks, and cards.

FIG. 6B is an example of a block diagram for computing system 600.Attached to system bus 620 are a wide variety of subsystems.Processor(s) 622 (also referred to as central processing units, or CPUs)are coupled to storage devices including memory 624. Memory 624 includesrandom access memory (RAM) and read-only memory (ROM). As is well knownin the art, ROM acts to transfer data and instructions uni-directionallyto the CPU and RAM is used typically to transfer data and instructionsin a bi-directional manner. Both of these types of memories may includeany suitable of the computer-readable media described below. A fixeddisk 626 is also coupled bi-directionally to CPU 622; it providesadditional data storage capacity and may also include any of thecomputer-readable media described below. Fixed disk 626 may be used tostore programs, data and the like and is typically a secondary storagemedium (such as a hard disk) that is slower than primary storage. Itwill be appreciated that the information retained within fixed disk 626,may, in appropriate cases, be incorporated in standard fashion asvirtual memory in memory 624. Removable disk 614 may take the form ofany of the computer-readable media described below.

CPU 622 is also coupled to a variety of input/output devices such asdisplay 604, keyboard 610, mouse 612 and speakers 630. In general, aninput/output device may be any of: video displays, track balls, mice,keyboards, microphones, touch-sensitive displays, transducer cardreaders, magnetic or paper tape readers, tablets, styluses, voice orhandwriting recognizers, biometrics readers, or other computers. CPU 622optionally may be coupled to another computer or telecommunicationsnetwork using network interface 640. With such a network interface, itis contemplated that the CPU might receive information from the network,or might output information to the network in the course of performingthe above-described method steps. Furthermore, method embodiments of thepresent invention may execute solely upon CPU 622 or may execute over anetwork such as the Internet in conjunction with a remote CPU thatshares a portion of the processing.

In addition, embodiments of the present invention further relate tocomputer storage products with a computer-readable medium that havecomputer code thereon for performing various computer-implementedoperations. The media and computer code may be those specially designedand constructed for the purposes of the present invention, or they maybe of the kind well known and available to those having skill in thecomputer software arts. Examples of computer-readable media include, butare not limited to: magnetic media such as hard disks, floppy disks, andmagnetic tape; optical media such as CD-ROMs and holographic devices;magneto-optical media such as floptical disks; and hardware devices thatare specially configured to store and execute program code, such asapplication-specific integrated circuits (ASICs), programmable logicdevices (PLDs) and ROM and RAM devices. Examples of computer codeinclude machine code, such as produced by a compiler, and filescontaining higher-level code that are executed by a computer using aninterpreter.

Although illustrative embodiments and applications of this invention areshown and described herein, many variations and modifications arepossible which remain within the concept, scope, and spirit of theinvention, and these variations would become clear to those of ordinaryskill in the art after perusal of this application. Accordingly, theembodiments described are illustrative and not restrictive, and theinvention is not to be limited to the details given herein, but may bemodified within the scope and equivalents of the appended claims.

1. A method of controlling operation of a power-consuming appliance, themethod comprising: receiving a location message from a power-controlenabled device, the location message containing location data and devicedata; retrieving a power-related profile using the device data; andcontrolling operation of the power-consuming appliance utilizing thelocation data, wherein timing of appliance operation is determined basedon a user location as indicated in the location message.
 2. A method asrecited in claim 1 wherein controlling operation of the power-consumingappliance further comprises executing power-related rules.
 3. A methodas recited in claim 1 further comprising receiving sensor componentdata.
 4. A method as recited in claim 1 wherein controlling operation ofthe appliance further comprises retrieving previous power-relatedperformance data relating to the power-consuming appliance.
 5. A methodas recited in claim 1 wherein controlling operation of the appliancefurther comprises examining an estimated arrival time.
 6. A method asrecited in claim 1 wherein the location message is transmitted via RESTprotocol.
 7. A method as recited in claim 1 further comprising parsingthe location message.
 8. A method as recited in claim 2 whereincontrolling operation of the power-consuming appliance further comprisesexamining condition outcome data resulting from execution of thepower-related rules.
 9. A method as recited in claim 1 furthercomprising verifying the power-control enabled device using a deviceidentifier in the location message.
 10. A method as recited in claim 1further comprising identifying the power-consuming appliance in thepower-related profile.
 11. A method as recited in claim 3 whereincontrolling operation of the power-consuming appliance furthercomprising examining sensor component data.
 12. A computing system forcontrolling operation an appliance, the system comprising: a processor;a network interface for receiving a location message containing devicedata and location data; a power-supply component interface fortransmitting instructions to one or more power-supply components; apower-control module having a location message parsing component; and amemory storing a power operation rule associated with the appliance; andat least one power-related profile.
 13. A computing system as recited inclaim 12 wherein the power-related profile further comprises appliancedata, sensor component data, and rules data.
 14. A computing system asrecited in claim 13 wherein the power-related profile further comprisesconditions data, user location-message file name, and userlocation-message format data.
 15. A computing system as recited in claim12 further comprising a profile priority module for determining apriority of power-related profiles.
 16. A computing system as recited inclaim 12 wherein the location message parsing component parsesREST-based messages and identifies location data including latitude dataand longitude data.
 17. A computing system as recited in claim 12wherein the power control module calculates a wait time period relatingto a time the power control module sends an operation controlinstruction to the appliance, wherein the calculation is based on datain the location message.
 18. A computing system as recited in claim 17wherein the memory further stores previous power-related performancedata relating to the appliance receiving power from the one or morepower-supply components.
 19. A computing system as recited in claim 18wherein the wait time period calculation is based on the previousperformance data.
 20. A computing system as recited in claim 17 whereinthe network interface receives sensor data from one or more sensors. 21.A computing system as recited in claim 20 wherein the wait time periodcalculation is based on the sensor data.
 22. A network for controllingoperation of a power-consuming appliance, the network comprising: atleast one device having a power-related module; a power controllercomponent having at least one power-saving profile, at least onepower-supply rule, a power module interface, and a power supply logiccomponent; and a power supply component for regulating operation of thepower-consuming appliance.
 23. A network as recited in claim 22 furthercomprising: at least one sensor component providing sensor data input tothe power controller component.
 24. A network as recited in claim 22further comprising a wireless data communication means supportingtransmission of REST protocol messages.
 25. A network as recited inclaim 22 further comprising a gateway component connected to the powercontroller component and a public data network.
 26. A network as recitedin claim 22 wherein the power supply component is an adaptive powersupply component for enabling adjustment of power and operation of thepower-consuming appliance.
 27. A network as recited in claim 22 whereinthe at least one device has a location-based service.
 28. An apparatusfor controlling operation of an appliance, the apparatus comprising: anetwork interface for receiving a location message from a power-controlenabled device, the location message containing location data and devicedata; means for retrieving a power-related profile using the device datain the location message; and means for controlling operation of thepower-consuming appliance utilizing the location data in the locationmessage, wherein timing of appliance operation is determined based on auser location as indicated in the location message.
 29. An apparatus asrecited in claim 28 wherein the means for controlling operation of thepower-consuming appliance further comprises means for executingpower-related rules.
 30. An apparatus as recited in claim 28 furthercomprising a means for receiving sensor component data.
 31. An apparatusas recited in claim 28 wherein the means for controlling operation ofthe appliance further comprises a means for retrieving previouspower-related performance data relating to the power-consumingappliance.
 32. An apparatus as recited in claim 28 wherein the means forcontrolling operation of the appliance further comprises a means forexamining an estimated arrival time.
 33. An apparatus as recited inclaim 28 further comprising a means for parsing the location message.34. An apparatus as recited in claim 28 further comprising a means foridentifying the power-consuming appliance in the power-related profile.35. A computer-readable medium storing computer instructions forcontrolling operation of a power-consuming appliance, thecomputer-readable medium comprising: computer code for receiving alocation message containing from a power-control enabled device, themessage containing device data and location data; computer code forretrieving a power-related profile using the device data; and computercode for controlling operation of the power-consuming applianceutilizing the location data, wherein timing of appliance operation isdetermined based on a user location as indicated in the locationmessage.